package com.xq.shop.service;

import com.xq.shop.dao.domain.entity.Order;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xq.shop.dto.*;
import com.xq.shop.vo.*;
import utils.BasePage;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 订单表 服务类
 * </p>
 *
 * @author gaoxiaojin
 * @since 2024-07-30
 */
public interface IOrderService extends IService<Order> {

    BasePage<OrderVo> pageQuery(QueryOrderDto dto);

    OrderDetailVo detail(IntegerDto dto);

    void editLabel(EditLabelDto dto);

    List<GoodsQuotationVo> goodsQuotationHistory(IntegerDto dto);

    void goodsQuotation(QuotationDto dto, Integer userId);

    void editOrder(EditOrderDto dto, Integer id);

    void sendMessage(OrderTrendsDto dto, Integer id);

    void removeMessage(IntegerDto dto, Integer id);

    void goodsProcure(GoodsProcureDto dto, Integer id);

    Map<String, List<GoodsProcureVo>> getGoodsProcure(StringDto dto);

    void removeGoodsProcure(IntegerDto dto);

    void refund(RefundDto dto, Integer userId);

    void removeRefund(IntegerDto dto);

    List<RefundVo> queryRefund(IntegerDto dto);

    List<GoodsDeliveryVo> queryDelivery(StringDto dto);

    void delivery(DeliveryDto dto, Integer id);

    void removeDelivery(IntegerDto dto, Integer id);

    HomeDataVo getData();

    List<BigDecimal> getOrderCount(IntegerDto dto);

    Map<String, List<Integer>> getPvOrUv();

    Map<String, List<Integer>> getPvOrUvByTime(TimeDto dto);

    WebUserAnalysis getWebUserAnalysis(TimeDto dto);

    TransactionVo getTransactionAnalysis(TimeDto dto);
}
